package sicnu.cs.aps.service;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageInfo;
import sicnu.cs.aps.domain.entity.ActivityAudit;
import sicnu.cs.aps.domain.entity.ActivityTeam;
import sicnu.cs.aps.domain.form.ActivityTeamQueryForm;
import sicnu.cs.aps.domain.vo.TeamInfoVo;
import sicnu.cs.aps.domain.vo.TimeEventVo;

import java.util.List;

/**
 * description 小组信息service
 *
 * @author chenhetao
 * @version 1.0
 * @className IActivityTeamService
 * @packageName sicnu.cs.aps.service.impl
 * @date 2022/5/31 09:46
 */
public interface IActivityTeamService {

    /**
     * 通过队伍id查询队伍当前状态
     * @param teamId 队伍id
     * @return 队伍信息
     */
    ActivityTeam getTeamById(Long teamId);

    /**
     * 通过队伍id查询队伍的详细信息
     * @param teamId 队伍id
     * @return 队伍的详细信息
     */
    TeamInfoVo getTeamDetailById(Long teamId);

    /**
     * 获取小队创建时间线信息
     *
     * @param teamId 小队id
     * @return 创建时间线信息
     */
    TimeEventVo getTeamCreateTimeLine(Long teamId);

    /**
     * 通过查询form查询小队列表
     *
     * @param teamQueryForm 条件及分页信息
     * @return 小队列表
     */
    PageInfo<TeamInfoVo> listTeamDetailByForm(ActivityTeamQueryForm teamQueryForm);

    /**
     * 更新队伍的状态 活动开始 （审核通过->进行中 进行中->待反馈）
     */
    void updateTeamState();


//    /**
//     * 通过队伍id 查询 队长id
//     * @param teamId 队伍id
//     * @return 队长id
//     */
//    Long getCaptainIdByTeamId(Long teamId);
}
